package com.gopay.common.domain.cps.cloud;

import com.gopay.common.constants.trans.DrawOpType;
import com.gopay.common.domain.BaseEntity;
import com.gopay.common.domain.cust.CustBankAcctInfo;

import java.math.BigDecimal;

/**
 * 免密提现申请数据对象
 * @CloudFreeDrawVO.java
 * @2017-12-22 上午09:57:30 www.gopay.com.cn Inc.All rights reserved.
 * @author sh.jiao
 */
public class CloudFreeDrawVO extends BaseEntity {


	private static final long serialVersionUID = 7632249882244180087L;
	public static final String MAPKEY_PAYORDER = "payOrder";
    public static final String MAPKEY_BANKLIST = "banklist";
    
    
    public static final  BigDecimal LIMIT_MONEY = new BigDecimal("9999999999.99");
    
    /**
     * 申请用户userId
     */
    private String userId;
   
    /**
     * 客户名
     */
    private String custName;
    
    private String custId;
    /**
     * 平台客户号
     */
    private String merId;
    
    private String merOrderId;
    /**
     * 动态口令
     * @return
     */
    private String dcPass;
    /**
     * 支付密码（仅确认申请）
     */
    private String payPwd;
    /**
     * sessionId
     */
    private String sessionId;
    
   
	/**
     * 操作类型：申请、申请确认、审核 DrawOpType
     */
    private DrawOpType opType;
    /**
     * 提现请求来源
     */
    private String source;
    /** 发送通知需要流水   **/
    private Integer transDtlSq; 
    /**
     * 客户端Ip
     */
    private String clientIp;
    
    
    /** 手续费为云平台承担时，需要平台账户**/
    private String cloudAcctId;
    /**
     * 付款方账号
     */
    private String acctId;
    /**
     * 付款方账号名称
     */
    private String acctName;
    /**
     * 提现金额
     */
    private BigDecimal txnAmt;
    /**
     * 手续费金额
     */
    private BigDecimal feeAmt;
    
    
    /**
     * 提现银行ID（仅申请）
     */
    private Long bankId;
    /**
     * 提现银行数据
     */
    private CustBankAcctInfo bank;

    private String gopayOrderId;

	/**
	 * 是否免密提现 add by sh.jiao 20171110
	 */
	private boolean isFreeDraw = false;

	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getCustName() {
		return custName;
	}
	public void setCustName(String custName) {
		this.custName = custName;
	}
	public String getCustId() {
		return custId;
	}
	public void setCustId(String custId) {
		this.custId = custId;
	}
	public String getMerId() {
		return merId;
	}
	public void setMerId(String merId) {
		this.merId = merId;
	}
	public String getMerOrderId() {
		return merOrderId;
	}
	public void setMerOrderId(String merOrderId) {
		this.merOrderId = merOrderId;
	}
	public String getDcPass() {
		return dcPass;
	}
	public void setDcPass(String dcPass) {
		this.dcPass = dcPass;
	}
	public String getPayPwd() {
		return payPwd;
	}
	public void setPayPwd(String payPwd) {
		this.payPwd = payPwd;
	}
	public DrawOpType getOpType() {
		return opType;
	}
	public void setOpType(DrawOpType opType) {
		this.opType = opType;
	}
	public String getSource() {
		return source;
	}
	public void setSource(String source) {
		this.source = source;
	}
	public Integer getTransDtlSq() {
		return transDtlSq;
	}
	public void setTransDtlSq(Integer transDtlSq) {
		this.transDtlSq = transDtlSq;
	}
	public String getClientIp() {
		return clientIp;
	}
	public void setClientIp(String clientIp) {
		this.clientIp = clientIp;
	}
	public String getCloudAcctId() {
		return cloudAcctId;
	}
	public void setCloudAcctId(String cloudAcctId) {
		this.cloudAcctId = cloudAcctId;
	}
	public String getAcctId() {
		return acctId;
	}
	public void setAcctId(String acctId) {
		this.acctId = acctId;
	}
	public String getAcctName() {
		return acctName;
	}
	public void setAcctName(String acctName) {
		this.acctName = acctName;
	}
	public BigDecimal getTxnAmt() {
		return txnAmt;
	}
	public void setTxnAmt(BigDecimal txnAmt) {
		this.txnAmt = txnAmt;
	}
	public BigDecimal getFeeAmt() {
		return feeAmt;
	}
	public void setFeeAmt(BigDecimal feeAmt) {
		this.feeAmt = feeAmt;
	}
	public Long getBankId() {
		return bankId;
	}
	public void setBankId(Long bankId) {
		this.bankId = bankId;
	}
	public CustBankAcctInfo getBank() {
		return bank;
	}
	public void setBank(CustBankAcctInfo bank) {
		this.bank = bank;
	}
	public String getSessionId() {
		return sessionId;
	}
	public void setSessionId(String sessionId) {
		this.sessionId = sessionId;
	}

	public boolean isFreeDraw() {
		return isFreeDraw;
	}

	public void setFreeDraw(boolean freeDraw) {
		isFreeDraw = freeDraw;
	}

	public String getGopayOrderId() {
		return gopayOrderId;
	}

	public void setGopayOrderId(String gopayOrderId) {
		this.gopayOrderId = gopayOrderId;
	}

	/**
	 * add by zyt toString中对密码做隐藏。输出日志的时候调用，防止密码打印出来
	 * 2017-3-16
	 * @return
	 */
	@Override
	public String toString() {
		return "CloudFreeDrawVO{" +
				"userId='" + userId + '\'' +
				", custName='" + custName + '\'' +
				", custId='" + custId + '\'' +
				", merId='" + merId + '\'' +
				", merOrderId='" + merOrderId + '\'' +
				", dcPass='" + dcPass + '\'' +
				", payPwd='" + "**** ****" + '\'' +
				", sessionId='" + sessionId + '\'' +
				", opType=" + opType +
				", source='" + source + '\'' +
				", transDtlSq=" + transDtlSq +
				", clientIp='" + clientIp + '\'' +
				", cloudAcctId='" + cloudAcctId + '\'' +
				", acctId='" + acctId + '\'' +
				", acctName='" + acctName + '\'' +
				", txnAmt=" + txnAmt +
				", feeAmt=" + feeAmt +
				", bankId=" + bankId +
				", bank=" + bank +
				'}';
	}
}
